tests: reorganise repo tests so they have fewer feature flags
authorFelix Krull <f_krull@gmx.de>
Wed, 12 Jun 2019 18:00:09 +0000 (20:00 +0200)
committerColin Walters <walters@verbum.org>
Fri, 6 May 2022 16:53:54 +0000 (12:53 -0400)
rust-bindings/rust/tests/repo.rs [deleted file]
rust-bindings/rust/tests/repo/checkout_at.rs [new file with mode: 0644]
rust-bindings/rust/tests/repo/mod.rs [new file with mode: 0644]
rust-bindings/rust/tests/tests.rs [new file with mode: 0644]

diff --git a/rust-bindings/rust/tests/repo.rs b/rust-bindings/rust/tests/repo.rs
deleted file mode 100644 (file)
index 560b008..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-extern crate gio;
-extern crate glib;
-extern crate openat;
-extern crate ostree;
-extern crate tempfile;
-#[macro_use]
-extern crate maplit;
-
-mod util;
-use util::*;
-
-use gio::prelude::*;
-use gio::NONE_CANCELLABLE;
-use glib::prelude::*;
-use ostree::ObjectType;
-use ostree::*;
-#[cfg(feature = "v2016_8")]
-use std::os::unix::io::AsRawFd;
-
-#[test]
-fn should_commit_content_to_repo_and_list_refs_again() {
-    let test_repo = TestRepo::new();
-
-    let mtree = create_mtree(&test_repo.repo);
-    let checksum = commit(&test_repo.repo, &mtree, "test");
-
-    let repo = ostree::Repo::new_for_path(test_repo.dir.path());
-    repo.open(NONE_CANCELLABLE).expect("OSTree test_repo");
-    let refs = repo
-        .list_refs(None, NONE_CANCELLABLE)
-        .expect("failed to list refs");
-    assert_eq!(1, refs.len());
-    assert_eq!(checksum, refs["test"]);
-}
-
-#[test]
-fn should_traverse_commit() {
-    let test_repo = TestRepo::new();
-    let checksum = test_repo.test_commit("test");
-
-    let objects = test_repo
-        .repo
-        .traverse_commit(&checksum, -1, NONE_CANCELLABLE)
-        .expect("traverse commit");
-
-    assert_eq!(
-        hashset!(
-            ObjectName::new(
-                "89f84ca9854a80e85b583e46a115ba4985254437027bad34f0b113219323d3f8",
-                ObjectType::File
-            ),
-            ObjectName::new(
-                "5280a884f930cae329e2e39d52f2c8e910c2ef4733216b67679db32a2b56c4db",
-                ObjectType::DirTree
-            ),
-            ObjectName::new(
-                "c81acde323d73f8639fc84f1ded17bbafc415e645f845e9f3b16a4906857c2d4",
-                ObjectType::DirTree
-            ),
-            ObjectName::new(
-                "ad49a0f4e3bc165361b6d17e8a865d479b373ee67d89ac6f0ce871f27da1be6d",
-                ObjectType::DirMeta
-            ),
-            ObjectName::new(checksum, ObjectType::Commit)
-        ),
-        objects
-    );
-}
-
-#[test]
-fn should_checkout_tree() {
-    let test_repo = TestRepo::new();
-    let _ = test_repo.test_commit("test");
-
-    let checkout_dir = tempfile::tempdir().expect("checkout dir");
-    let file = test_repo
-        .repo
-        .read_commit("test", NONE_CANCELLABLE)
-        .expect("read commit")
-        .0
-        .downcast::<ostree::RepoFile>()
-        .expect("RepoFile");
-    let info = file
-        .query_info("*", gio::FileQueryInfoFlags::NONE, NONE_CANCELLABLE)
-        .expect("file info");
-    test_repo
-        .repo
-        .checkout_tree(
-            ostree::RepoCheckoutMode::User,
-            ostree::RepoCheckoutOverwriteMode::None,
-            &gio::File::new_for_path(checkout_dir.path().join("test-checkout")),
-            &file,
-            &info,
-            NONE_CANCELLABLE,
-        )
-        .expect("checkout tree");
-
-    assert_test_file(checkout_dir.path());
-}
-
-#[test]
-#[cfg(feature = "v2016_8")]
-fn should_checkout_at_with_none_options() {
-    let test_repo = TestRepo::new();
-    let checksum = test_repo.test_commit("test");
-    let checkout_dir = tempfile::tempdir().expect("checkout dir");
-
-    let dirfd = openat::Dir::open(checkout_dir.path()).expect("openat");
-    test_repo
-        .repo
-        .checkout_at(
-            None,
-            dirfd.as_raw_fd(),
-            "test-checkout",
-            &checksum,
-            NONE_CANCELLABLE,
-        )
-        .expect("checkout at");
-
-    assert_test_file(checkout_dir.path());
-}
-
-#[test]
-#[cfg(feature = "v2016_8")]
-fn should_checkout_at_with_default_options() {
-    let test_repo = TestRepo::new();
-    let checksum = test_repo.test_commit("test");
-    let checkout_dir = tempfile::tempdir().expect("checkout dir");
-
-    let dirfd = openat::Dir::open(checkout_dir.path()).expect("openat");
-    test_repo
-        .repo
-        .checkout_at(
-            Some(&RepoCheckoutAtOptions::default()),
-            dirfd.as_raw_fd(),
-            "test-checkout",
-            &checksum,
-            NONE_CANCELLABLE,
-        )
-        .expect("checkout at");
-
-    assert_test_file(checkout_dir.path());
-}
-
-#[test]
-#[cfg(feature = "v2016_8")]
-fn should_checkout_at_with_options() {
-    let test_repo = TestRepo::new();
-    let checksum = test_repo.test_commit("test");
-    let checkout_dir = tempfile::tempdir().expect("checkout dir");
-
-    let dirfd = openat::Dir::open(checkout_dir.path()).expect("openat");
-    test_repo
-        .repo
-        .checkout_at(
-            Some(&RepoCheckoutAtOptions {
-                mode: RepoCheckoutMode::User,
-                overwrite_mode: RepoCheckoutOverwriteMode::AddFiles,
-                enable_fsync: true,
-                force_copy: true,
-                force_copy_zerosized: true,
-                devino_to_csum_cache: Some(RepoDevInoCache::new()),
-                filter: Some(Box::new(|_repo, _path, _stat| {
-                    RepoCheckoutFilterResult::Allow
-                })),
-                ..Default::default()
-            }),
-            dirfd.as_raw_fd(),
-            "test-checkout",
-            &checksum,
-            NONE_CANCELLABLE,
-        )
-        .expect("checkout at");
-
-    assert_test_file(checkout_dir.path());
-}
-
-#[test]
-#[cfg(feature = "v2016_8")]
-fn should_checkout_at_with_filter() {
-    let test_repo = TestRepo::new();
-    let checksum = test_repo.test_commit("test");
-    let checkout_dir = tempfile::tempdir().expect("checkout dir");
-
-    let dirfd = openat::Dir::open(checkout_dir.path()).expect("openat");
-    test_repo
-        .repo
-        .checkout_at(
-            Some(&RepoCheckoutAtOptions {
-                filter: Some(Box::new(|_repo, path, _stat| {
-                    if let Some("testfile") = path.file_name().map(|s| s.to_str().unwrap()) {
-                        RepoCheckoutFilterResult::Skip
-                    } else {
-                        RepoCheckoutFilterResult::Allow
-                    }
-                })),
-                ..Default::default()
-            }),
-            dirfd.as_raw_fd(),
-            "test-checkout",
-            &checksum,
-            NONE_CANCELLABLE,
-        )
-        .expect("checkout at");
-
-    let testdir = checkout_dir.path().join("test-checkout").join("testdir");
-    assert!(std::fs::read_dir(&testdir).is_ok());
-    assert!(std::fs::File::open(&testdir.join("testfile")).is_err());
-}
diff --git a/rust-bindings/rust/tests/repo/checkout_at.rs b/rust-bindings/rust/tests/repo/checkout_at.rs
new file mode 100644 (file)
index 0000000..27e4c97
--- /dev/null
@@ -0,0 +1,110 @@
+use crate::util::*;
+use gio::NONE_CANCELLABLE;
+use ostree::*;
+use std::os::unix::io::AsRawFd;
+
+#[test]
+fn should_checkout_at_with_none_options() {
+    let test_repo = TestRepo::new();
+    let checksum = test_repo.test_commit("test");
+    let checkout_dir = tempfile::tempdir().expect("checkout dir");
+
+    let dirfd = openat::Dir::open(checkout_dir.path()).expect("openat");
+    test_repo
+        .repo
+        .checkout_at(
+            None,
+            dirfd.as_raw_fd(),
+            "test-checkout",
+            &checksum,
+            NONE_CANCELLABLE,
+        )
+        .expect("checkout at");
+
+    assert_test_file(checkout_dir.path());
+}
+
+#[test]
+fn should_checkout_at_with_default_options() {
+    let test_repo = TestRepo::new();
+    let checksum = test_repo.test_commit("test");
+    let checkout_dir = tempfile::tempdir().expect("checkout dir");
+
+    let dirfd = openat::Dir::open(checkout_dir.path()).expect("openat");
+    test_repo
+        .repo
+        .checkout_at(
+            Some(&RepoCheckoutAtOptions::default()),
+            dirfd.as_raw_fd(),
+            "test-checkout",
+            &checksum,
+            NONE_CANCELLABLE,
+        )
+        .expect("checkout at");
+
+    assert_test_file(checkout_dir.path());
+}
+
+#[test]
+fn should_checkout_at_with_options() {
+    let test_repo = TestRepo::new();
+    let checksum = test_repo.test_commit("test");
+    let checkout_dir = tempfile::tempdir().expect("checkout dir");
+
+    let dirfd = openat::Dir::open(checkout_dir.path()).expect("openat");
+    test_repo
+        .repo
+        .checkout_at(
+            Some(&RepoCheckoutAtOptions {
+                mode: RepoCheckoutMode::User,
+                overwrite_mode: RepoCheckoutOverwriteMode::AddFiles,
+                enable_fsync: true,
+                force_copy: true,
+                force_copy_zerosized: true,
+                devino_to_csum_cache: Some(RepoDevInoCache::new()),
+                filter: Some(Box::new(|_repo, _path, _stat| {
+                    RepoCheckoutFilterResult::Allow
+                })),
+                ..Default::default()
+            }),
+            dirfd.as_raw_fd(),
+            "test-checkout",
+            &checksum,
+            NONE_CANCELLABLE,
+        )
+        .expect("checkout at");
+
+    assert_test_file(checkout_dir.path());
+}
+
+#[test]
+fn should_checkout_at_with_filter() {
+    let test_repo = TestRepo::new();
+    let checksum = test_repo.test_commit("test");
+    let checkout_dir = tempfile::tempdir().expect("checkout dir");
+
+    let dirfd = openat::Dir::open(checkout_dir.path()).expect("openat");
+    test_repo
+        .repo
+        .checkout_at(
+            Some(&RepoCheckoutAtOptions {
+                filter: Some(Box::new(|_repo, path, _stat| {
+                    if let Some("testfile") = path.file_name().map(|s| s.to_str().unwrap()) {
+                        RepoCheckoutFilterResult::Skip
+                    } else {
+                        RepoCheckoutFilterResult::Allow
+                    }
+                })),
+                ..Default::default()
+            }),
+            dirfd.as_raw_fd(),
+            "test-checkout",
+            &checksum,
+            NONE_CANCELLABLE,
+        )
+        .expect("checkout at");
+
+    let testdir = checkout_dir.path().join("test-checkout").join("testdir");
+    assert!(std::fs::read_dir(&testdir).is_ok());
+    assert!(std::fs::File::open(&testdir.join("testfile")).is_err());
+}
diff --git a/rust-bindings/rust/tests/repo/mod.rs b/rust-bindings/rust/tests/repo/mod.rs
new file mode 100644 (file)
index 0000000..c0385ba
--- /dev/null
@@ -0,0 +1,90 @@
+use crate::util::*;
+use gio::prelude::*;
+use gio::NONE_CANCELLABLE;
+use glib::prelude::*;
+use ostree::ObjectType;
+use ostree::*;
+
+#[cfg(feature = "v2016_8")]
+mod checkout_at;
+
+#[test]
+fn should_commit_content_to_repo_and_list_refs_again() {
+    let test_repo = TestRepo::new();
+
+    let mtree = create_mtree(&test_repo.repo);
+    let checksum = commit(&test_repo.repo, &mtree, "test");
+
+    let repo = ostree::Repo::new_for_path(test_repo.dir.path());
+    repo.open(NONE_CANCELLABLE).expect("OSTree test_repo");
+    let refs = repo
+        .list_refs(None, NONE_CANCELLABLE)
+        .expect("failed to list refs");
+    assert_eq!(1, refs.len());
+    assert_eq!(checksum, refs["test"]);
+}
+
+#[test]
+fn should_traverse_commit() {
+    let test_repo = TestRepo::new();
+    let checksum = test_repo.test_commit("test");
+
+    let objects = test_repo
+        .repo
+        .traverse_commit(&checksum, -1, NONE_CANCELLABLE)
+        .expect("traverse commit");
+
+    assert_eq!(
+        hashset!(
+            ObjectName::new(
+                "89f84ca9854a80e85b583e46a115ba4985254437027bad34f0b113219323d3f8",
+                ObjectType::File
+            ),
+            ObjectName::new(
+                "5280a884f930cae329e2e39d52f2c8e910c2ef4733216b67679db32a2b56c4db",
+                ObjectType::DirTree
+            ),
+            ObjectName::new(
+                "c81acde323d73f8639fc84f1ded17bbafc415e645f845e9f3b16a4906857c2d4",
+                ObjectType::DirTree
+            ),
+            ObjectName::new(
+                "ad49a0f4e3bc165361b6d17e8a865d479b373ee67d89ac6f0ce871f27da1be6d",
+                ObjectType::DirMeta
+            ),
+            ObjectName::new(checksum, ObjectType::Commit)
+        ),
+        objects
+    );
+}
+
+#[test]
+fn should_checkout_tree() {
+    let test_repo = TestRepo::new();
+    let _ = test_repo.test_commit("test");
+
+    let checkout_dir = tempfile::tempdir().expect("checkout dir");
+    let file = test_repo
+        .repo
+        .read_commit("test", NONE_CANCELLABLE)
+        .expect("read commit")
+        .0
+        .downcast::<ostree::RepoFile>()
+        .expect("RepoFile");
+    let info = file
+        .query_info("*", gio::FileQueryInfoFlags::NONE, NONE_CANCELLABLE)
+        .expect("file info");
+    test_repo
+        .repo
+        .checkout_tree(
+            ostree::RepoCheckoutMode::User,
+            ostree::RepoCheckoutOverwriteMode::None,
+            &gio::File::new_for_path(checkout_dir.path().join("test-checkout")),
+            &file,
+            &info,
+            NONE_CANCELLABLE,
+        )
+        .expect("checkout tree");
+
+    assert_test_file(checkout_dir.path());
+}
diff --git a/rust-bindings/rust/tests/tests.rs b/rust-bindings/rust/tests/tests.rs
new file mode 100644 (file)
index 0000000..3a8502d
--- /dev/null
@@ -0,0 +1,10 @@
+extern crate gio;
+extern crate glib;
+extern crate openat;
+extern crate ostree;
+extern crate tempfile;
+#[macro_use]
+extern crate maplit;
+
+mod repo;
+mod util;